package com.aipp.mall.h5.domain.vo;

import com.aipp.mall.common.anno.Note;
import com.aipp.mall.common.model.BaseAudit;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单售后 数据视图对象
 *
 * @author sjm
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class AfterSaleRefundInfoVO extends BaseAudit {
    /**
     * ID
     */
    private Long id;
    /**
     * MEMBER_ID
     */
    @Note(name = "MEMBER_ID")
    private Long memberId;
    /**
     * 订单id
     */
    @Note(name = "订单id")
    private Long orderId;
    /**
     * 退款金额
     */
    @Note(name = "退款金额")
    private BigDecimal returnAmount;
    /**
     * 售后类型：1：退款，2：退货退款
     */
    @Note(name = "售后类型：1：退款，2：退货退款")
    private Integer type;
    /**
     * 申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝
     */
    @Note(name = "申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝")
    private Integer status;
    /**
     * 处理时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Note(name = "处理时间")
    private LocalDateTime handleTime;
    /**
     * 退款快递公司
     */
    @Note(name = "退款快递公司")
    private String refundWpCode;
    /**
     * 退货快递号
     */
    @Note(name = "退货快递号")
    private String refundWaybillCode;
    /**
     * 退货数量
     */
    @Note(name = "退货数量")
    private Integer quantity;
    /**
     * 原因
     */
    @Note(name = "原因")
    private String reason;
    /**
     * 描述
     */
    @Note(name = "描述")
    private String description;
    /**
     * 凭证图片，以逗号隔开
     */
    @Note(name = "凭证图片，以逗号隔开")
    private String proofPics;
    /**
     * 处理备注
     */
    @Note(name = "处理备注")
    private String handleNote;
    /**
     * 处理人员
     */
    @Note(name = "处理人员")
    private String handleMan;

    /**
     * item
     */
    private List<AfterSaleItemVO> aftersaleItemList;
    private List<OrderItemVO> orderItemList;
}
